package com.ztgf.pay.models.service;

import com.baomidou.mybatisplus.service.IService;
import com.ztgf.common.constant.Result;
import com.ztgf.pay.models.bo.PayUserMoneySaveBO;
import com.ztgf.pay.models.bo.PayUserRechargeSaveBO;
import com.ztgf.pay.models.bo.PayUserWithdrawBO;
import com.ztgf.pay.models.dto.PayUserRechargeDTO;

import java.util.List;

/**
 * 用户充值表服务
 *
 * @author mxli
 * @Date 2020-07-30 12:15:08
 */
public interface IPayUserRechargeService extends IService<PayUserRechargeDTO> {

    /**
     * 网银充值
     * @param saveBO
     * @return
     */
    Result<PayUserRechargeDTO> saveRechargeByOnlineBank(PayUserRechargeSaveBO saveBO);

    /**
     * 提现到银行卡
     * @param saveBO
     * @return
     */
    Result saveWithdraw(PayUserWithdrawBO saveBO);

    /**
     * 批量冻结金额
     * @param list
     * @return
     */
    Result<List<PayUserRechargeDTO>> saveFreezeMoney(List<PayUserMoneySaveBO> list);

    /**
     * 批量解冻金额
     * @param list
     * @return
     */
    Result<List<PayUserRechargeDTO>> saveUnfreezeMoney(List<PayUserMoneySaveBO> list);

    /**
     * 解冻/冻结余额
     * @param list
     * @param type 0冻结、1解冻
     * @return
     */
    Result<List<PayUserRechargeDTO>> saveMoney(List<PayUserMoneySaveBO> list, int type);

    /**
     * 主动查询更新出入金状态
     * @param rechargeDTO
     */
    void saveMoneyLog(PayUserRechargeDTO rechargeDTO);
}
